package ar.com.binarit.entities

class TipoEvento {

    public static String ALTA_USUARIO = "AltaUsuario"
	public static String NUEVA_MUBBIA = "NuevaMubbia"
	public static String CIERRA_MUBBIA = "CierraMubbia"
	public static String NUEVO_SEGUIDOR = "NuevoSeguidor"
	public static String MUBBIAS_DE_LA_SEMANA = "MubbiasDeLaSemana"
	public static String MUBBIAS_DEL_DIA = "MubbiasDelDia"
	public static String AUMENTO_RANKING = "AumentoRanking"
	public static String NUEVO_COMENTARIO_MUBBIA = "NuevoComentarioMubbia"
	
	String descripcion
	boolean opcional
	
    static constraints = {
		descripcion(size:1..50)
    }
	
	static mapping = {
	}
	
	String toString() {
		"${descripcion}"
	}
	
	public boolean equals(Object o) {
		try {
			TipoUsuario otro = (TipoUsuario) o
			return otro.id.equals(id)
		} catch (ClassCastException e) {
			return false
		}
	}
	
	public int hashCode() {
		return id.hashCode()
	}
	
	static def altaUsuario() {
		return TipoEvento.findByDescripcion(ALTA_USUARIO)
	}
	
	static def nuevaMubbia() {
		return TipoEvento.findByDescripcion(NUEVA_MUBBIA)
	}

	static def cierraMubbia() {
		return TipoEvento.findByDescripcion(CIERRA_MUBBIA)
	}
	
	static def nuevoComentarioMubbia() {
		return TipoEvento.findByDescripcion(NUEVO_COMENTARIO_MUBBIA)
	}
	
	//TODO: Implementar estos
	static def nuevoSeguidor() {
		return TipoEvento.findByDescripcion(NUEVO_SEGUIDOR)
	}

	static def mubbiasDeLaSemana() {
		return TipoEvento.findByDescripcion(MUBBIAS_DE_LA_SEMANA)
	}
	
	static def mubbiasDelDia() {
		return TipoEvento.findByDescripcion(MUBBIAS_DEL_DIA)
	}
	
	static def aumentoRanking() {
		return TipoEvento.findByDescripcion(AUMENTO_RANKING)
	}
	
}
